home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / avr32 / mach-at32ap / include / mach / pm.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.1 KB  |  52 lines

  1. /*
  2.  * AVR32 AP Power Management.
  3.  *
  4.  * Copyright (C) 2008 Atmel Corporation
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License version 2 as
  8.  * published by the Free Software Foundation.
  9.  */
  10. #ifndef __ASM_AVR32_ARCH_PM_H
  11. #define __ASM_AVR32_ARCH_PM_H
  12.  
  13. /* Possible arguments to the "sleep" instruction */
  14. #define CPU_SLEEP_IDLE        0
  15. #define CPU_SLEEP_FROZEN    1
  16. #define CPU_SLEEP_STANDBY    2
  17. #define CPU_SLEEP_STOP        3
  18. #define CPU_SLEEP_STATIC    5
  19.  
  20. #ifndef __ASSEMBLY__
  21. extern void cpu_enter_idle(void);
  22. extern void cpu_enter_standby(unsigned long sdramc_base);
  23.  
  24. extern bool disable_idle_sleep;
  25.  
  26. static inline void cpu_disable_idle_sleep(void)
  27. {
  28.     disable_idle_sleep = true;
  29. }
  30.  
  31. static inline void cpu_enable_idle_sleep(void)
  32. {
  33.     disable_idle_sleep = false;
  34. }
  35.  
  36. static inline void cpu_idle_sleep(void)
  37. {
  38.     /*
  39.      * If we're using the COUNT and COMPARE registers for
  40.      * timekeeping, we can't use the IDLE state.
  41.      */
  42.     if (disable_idle_sleep)
  43.         cpu_relax();
  44.     else
  45.         cpu_enter_idle();
  46. }
  47.  
  48. void intc_set_suspend_handler(unsigned long offset);
  49. #endif
  50.  
  51. #endif /* __ASM_AVR32_ARCH_PM_H */
  52.